Business objects are real world entities modeled as objects in an information system. Business objects encapsulate both data structures and the functions applied to the data, while hiding their full complexity from other objects. This encapsulation of data and functions makes it easier to modify program components by allowing one to program with the relevant entities without having to know all the implementation details. Business objects also allow for the reuse of existing functions.
Client programs access business objects by reading their attributes, or by calling the methods that make up the interface of an object. Attributes describe the data stored in an object through a set of properties and provide direct read access to the data structures of objects although client programs cannot change them from outside. Methods provide a way to encapsulate the data structures of business objects, and to process them. When accessing an object, the client program calls a method with parameters and gets back return parameters. The interface is the set of methods associated with a business object, and determines how an object interacts with the outside world. The client program defines the object types to be used and, at runtime, creates object instances of those object types.
Object-oriented programs utilizing business objects are being increasing adopted. However, the process of deriving new business objects can be cumbersome and often result in redundancies and inconsistencies among business objects within a system.